Wenn Sie TESTS nur auf dem eigenen Rechner einsetzen, dann können Sie die CD ROM (mit Ausnahme des Verzeichnisses Demonstrationssoftware) mit einem Doppelklick auf INSTALL.VBS installieren. Die Installation verläuft in sechs Schritten:
Damit Sie die Entwicklung eines einfachen Installationsskripts in VBScript nachvollziehen können, verzichtet TESTS darauf, die Installation mit einem professionellen Autorenwerkzeug wie InstallShield zu unterstützen. INSTALL.VBS finden Sie im obersten Verzeichnis der CD ROM. Ein Doppelklick startet den Installationsvorgang. Zur Inspektion des Skriptcode können Sie INSTALL.VBS in Ihrem Editor betrachten (»Rechtsklick im Windows Explorer/Open with ...). Die Dateierweiterung .VBS steht für Visual Basic Script. Der Code ist mehr oder weniger selbsterklärend. Wir vertiefen lediglich eine Subroutine, welche die Programmierkonzepte Auflistung und Rekursion veranschaulicht:
Sub entferneSchreibschutz(Pfad)
'-- VbScript kennt keine Datentypen
Dim Verzeichnis
Dim Unterverzeichnis
Dim Datei
Set Verzeichnis = Dateisystem.GetFolder(Pfad)
'-- Setze die Attribute aller Dateien des Verzeichnisses Pfad auf cNormal
For Each Datei in Verzeichnis.Files
Datei.Attributes = cNormal
Next
'-- Setze die Attribute aller Dateien der Unterverzeichnisse von Pfad auf cNormal
For Each Unterverzeichnis in Verzeichnis.SubFolders
entferneSchreibschutz(Pfad & "\" & Unterverzeichnis.Name) 'rekursiver Aufruf
Next
End Sub
Eine Auflistung ist ein Objekt, das seinerseits aus Objekten besteht. Der obige Code illustriert an den systemdefinierten Auflistungen Files und Subfolders, wie man mit For Each ... Next eine Auflistung durchlaufen kann. Die Subroutine entferneSchreibschutz weist zuerst der Objektvariablen Verzeichnis den Ordner Pfad zu. Verzeichnis zeigt nachher auf die Auflistung aller Files dieses Ordners Die erste For Each-Schleife setzt für deren Mitglieder die Eigenschaft Attributes auf cNormal. Die zweite Schleife durchläuft jene Dateien, die zur Auflistung SubFolders (Unterverzeichnisse) von Pfad gehört und setzt ebenfalls die Eigenschaft Attributes auf cNormal. Der fortgesetzte rekursive Aufruf von entferneSchreibschutz endet dort, wo Dateisystem.GetFolder(Pfad) keine Unterverzeichnisse mehr findet.
Rekursive Unterprogramme bieten sich vor allem für die Manipulation rekursiver Datenstrukturen an. Die wichtigste rekursive Datenstruktur ist der Baum (die Hierarchie). Das folgende Bild zeigt einen Teil des Verzeichnisbaums der CD ROM CdEUS:
Ein Verzeichnisbaum besteht aus Knoten. Ein Knoten ist entweder selbst ein Verzeichnisbaum (ein Unterverzeichnis) oder eine gewöhnliche Datei. Ein Knoten, der zu weiteren Knoten verzweigt, heisst Zwischenknoten. Endknoten (im Beispiel Dateien) sind Knoten, die weder Wurzelknoten noch Zwischenknoten sind.
Die rekursive Baumprozedur eines Vaterknotens (eines übergeordneten Knotens wie CdEUS) manipuliert nur die Kindknoten (die unmittelbaren Vorgängerknoten wie Demonstrationssoftware, EUS und Grundlagen Excel). Für jeden Kindknoten wird die rekursive Prozedur neu aufgerufen, und so weiter ... Rekursive Baumprozeduren sind einfach, weil sie nur die Manipulation eines einzigen Knotens explizit beschreiben. Die beschriebene Manipulation lässt sich wegen der rekursiven Struktur des Baums leicht auf die übrigen Knoten übertragen.